<?php

	//uzupelniamy pewne braki metod z grupy array_(...)	

	//obsluga tablic iterowanych jednopoziomowo
	//
	// array([0] => ..., [1] => ..., [2] => ...);
	
	class CIterArray
	{
		//sprawdza czy tablica iterowana zawiera klucz o zadanej nazwie
		static function HasKey($aArray,$szKey)
		{
			//jesli zasob nie jest tablica
			if( !is_array($aArray) || $szKey == '') { return false; }
			
			foreach($aArray as &$aTmp)
			{
				if( isset($aTmp[$szKey]) )
				{
					return true;
				}
			}
			
			return false;
		}
		
		//sprawdza czy tablica iterowana zawiera zadana wartosc w danym kluczu
		static function HasVal($aArray,$szVal)
		{
			if( !is_array($aArray) ) { return false; }
			
			foreach($aArray as &$aTmp)
			{
				foreach($aTmp as $szKey => &$szVal)
				{
					if($szVal == $szVal)
						return true;
				}
				
			}
			
			return false;
		}
		
		//sprawdza czy tablica iterowana zawiera zadany klucz i wartosc
		static function HasKeyVal($aArray,$szKey,$szVal)
		{
			if( !is_array($aArray) || $szKey == '') { return false; }
				
			foreach($aArray as &$aTmp)
			{
				if( isset($aTmp[$szKey]) && $aTmp[$szKey] == $szVal)
				{
					return true;
				}
			}	
			
			return false;
		}
	}
	
	
	//operacje plikowe na tablicy
	class CArrayFile
	{
		static function Save($aData,$szFile)
		{
			if(!is_array($aData)) { return false; }
			
			file_put_contents($szFile,serialize($aData));
			
			return true;
		}
		
		static function Load($szFilePath)
		{
			$szArray = file_get_contents($szFilePath);	
			$aArray  = unserialize($szArray);
			
			return $aArray;
		}
	}
		
?>